#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Usage:
    Install cx_Freeze: http://cx-freeze.sourceforge.net/
    Copy script to the web2py directory
    c:\Python27\python standalone_exe_cxfreeze.py build_exe
"""
from cx_Freeze import setup, Executable
from gluon.import_all import base_modules, contributed_modules
from gluon.fileutils import readlines_file
from glob import glob
import fnmatch
import os
import shutil
import sys
import re

# read web2py version from VERSION file
web2py_version_line = readlines_file("VERSION")[0]
# use regular expression to get just the version number
v_re = re.compile("[0-9]+\.[0-9]+\.[0-9]+")
web2py_version = v_re.search(web2py_version_line).group(0)

base = None

if sys.platform == "win32":
    base = "Win32GUI"

base_modules.remove("macpath")
buildOptions = dict(
    compressed=True,
    excludes=["macpath", "PyQt4"],
    includes=base_modules,
    include_files=[
        "applications",
        "ABOUT.web2py.txt",
        "LICENSE.web2py.txt",
        "logging.example.conf",
        "options_std.py",
        "app.example.yaml",
        "queue.example.yaml",
    ],
    # append any extra module by extending the list below -
    # "contributed_modules+["lxml"]"
    packages=contributed_modules,
)

setup(
    name="Web2py",
    version=web2py_version,
    author="Massimo DiPierro",
    description="web2py web framework",
    license="LGPL v3",
    options=dict(build_exe=buildOptions),
    executables=[
        Executable(
            "web2py.py",
            base=base,
            compress=True,
            icon="web2py.ico",
            targetName="web2py.exe",
            copyDependentFiles=True,
        )
    ],
)
